package cn.zn.modules.budget.cur.service;

import cn.zn.modules.budget.cur.entity.TBudgetInfo;
import cn.zn.modules.budget.cur.entity.vo.BudgetInfoDeptNameSumVO;
import cn.zn.modules.budget.cur.entity.vo.BudgetInfoDeptSumVO;
import cn.zn.modules.budget.cur.entity.vo.BudgetInfoSumVO;
import cn.zn.modules.budget.vo.BudgetMoneyVO;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;
import java.util.Map;

public interface TBudgetInfoService extends IService<TBudgetInfo> {

    /**
     * 查询预算所对应的双高项目
     *
     * @param budgetInfoIds
     * @return
     */
    List<Map<String, String>> findSGByInfo(List<String> budgetInfoIds);

    /**
     * 查询可用预算信息
     *
     * @param deptCode
     * @param projectCode
     * @param cateCode
     * @return
     */
    BudgetMoneyVO findAvailableBudget(String deptCode, String projectCode, String cateCode);

    /**
     * 按部门、项目统计
     *
     * @param deptCode
     * @param projectName
     * @param cateName
     * @return
     */
    List<BudgetInfoSumVO> querySum(String deptCode, String projectName, String cateName);

    /**
     * 按部门统计
     *
     * @return
     */
    List<BudgetInfoDeptSumVO> querySumForDept(Integer year);

    /**
     * 按部门统计，包括无预算的部门
     *
     * @return
     */
    List<BudgetInfoDeptNameSumVO> querySumForDeptAll(Integer year);
}
